Speed sensors used in aquatic applications such as those used to determine the speed of a vessel moving through water have become more accurate at the cost of increased complexity. In the past, paddle-wheel type speed sensors were used but are now outdated due to the fact that they are vulnerable to damage by debris in the water and often impart an undesirable drag on the boat, thus, impeding forward motion. More advanced speed sensors include sophisticated electronics coupled to ultrasonic transducer pairs spaced on a motion axis of a vessel to monitor a forward speed.
According to suggested ultrasonic speed detection methods, two spaced transducers are used to monitor regions beneath the bottom-side of a vessel. Ultrasonic signals from each transducer are emitted towards randomly located reflective particles from such objects as air bubbles present in the water, while corresponding reflected signals are sampled by each respective transducer. Since the monitoring transducers are located along an axis in line with the forward motion of the vessel, each transducer monitors a substantially similar set of reflective surfaces when the vessel is moving forward. In other words, a first sensor detects reflections from a set of random particles in a fluid, while a second sensor detects reflections off a substantially similar set of the random particles at a later time based on the forward motion. Accordingly, a time difference associated with the two substantially matching but time-shifted signals can then be used in conjunction with transducer separation to determine vessel speed.
There are drawbacks associated with the aforementioned side-by-side ultrasonic transducer speed sensor. For example, significant signal processing power must typically be employed to accurately determine vessel speed since two entire sets of sampled data corresponding to the location of the vessel at a given instant in time must be analyzed to accurately determine the time difference between the two sampled reflection signals. This is a heavy price to pay for accurately determining speed of a vessel.
The present invention provides several novel improvements for reducing the complexity of processing and comparing signals. Generally, the signal processing improvements disclosed herein reduce the complexity of determining a time difference between two similar but time-shifted signals, including the processing platform upon which a corresponding algorithm runs. In one application, a simplified set of data samples are processed to derive vessel speed, without unduly compromising accuracy of the speed sensor.
More particularly, one aspect of the present invention is directed towards a system and method to determine a time difference between two similar but time-shifted signals. In an illustrative embodiment, first and second signals are sampled to generate a discrete mathematical function whose discrete sample points define overlapping ranges. For example, the discrete mathematical function itself can be a function defined by multiple discrete sample points. Typically, at least one of the multiple overlapping ranges defined by sample points can be used to interpolate a point on the mathematical function indicating a time difference between the first and second signals. Consequently, the mathematical function characterizing a time relationship between the first and second signals can be used to determine speed or other measurable quantities.
In one embodiment, the discrete mathematical function is a difference function correlating echo signals from multiple monitored regions. The echo signals can be reflections from particles, inconsistencies or structures disposed in a fluid. Each of the first and second signals can be sampled to incrementally generate a mathematical function at discrete sample points. Also, each of the first and second signals can be compared to a respective threshold signal to generate a discrete mathematical function that is in turn used to determine a time difference between the first and second signals.
A mathematical function such as a difference function can be generated at discrete sample points based on signal sampling in a first time interval. The difference function can then be analyzed in a range defined by a first pair of sample points of the difference function to interpolate a time difference between the echo signals for sample data taken in the first interval.
The mathematical function can be updated based on new samplings or signal sampling in a second time interval. For example, the difference function can be updated by continuous, periodic or intermittent sampling of the first and second signals. Consequently, the updated difference function can be analyzed to determine a time difference between signals at a particular snapshot in time.
A time difference between two echo signals can be interpolated in a particular range between sample points of the difference function. If interpolation can not be used in a given range to determine a time difference between signals, another pair of sample points of the difference function whose range at least partly overlaps with a previous pair of sample points can be used to determine a time difference between multiple signals. This technique of utilizing overlapping ranges for successive calculations can be used to more accurately determine a time difference between signals, especially if the time difference between signals is changing.
For example, consider that a change in vessel speed causes the difference function to change. As the difference function changes, a new overlapping range can be used to determine a time difference between signals. Thus, the use of multiple sample points to define overlapping ranges can result in more accurate readings and smoother transitions in displayed speed when presented to a pilot or user.
As mentioned, characteristics of the first and second signals can change over time as a result of a changing relative speed of monitored particles with respect to corresponding sensors. This results in a change in the difference function and reporting of vessel speed.
Other more specific aspects of the present invention can be employed to identify, for example, the relative speed or throughput of a fluid through a conduit such as a pipe. In this instance, a sensor device can be disposed to monitor a flow in which first and second signals are generated from guided fluid or reflective particles in the guided fluid passing through monitored regions.
A generated discrete mathematical function can include a unique point such as a zero-crossing that reflects a time difference between the first and second signals. The zero-crossing can be an imaginary or real point on the difference function that intersects with a particular reference such as an axis. More specifically, the zero-crossing can be a point at which the discrete mathematical function intercepts a reference. A specific position of the zero-crossing of the difference function can be calculated using mathematical techniques such as interpolation. For example, an imaginary line or curve can be drawn between the sample points of the difference function to determine at what point the function intersects a time axis or other relevant reference. The intersection can indicate an offset of time at which a near-perfect correlation exists between the first and second signals.
In one application, a magnitude of the first signal is proportional to an intensity of reflections in a first monitored region and a magnitude of the second signal is proportional to an intensity of reflection in a second monitored region. Consequently, speed such as vessel speed or fluid speed can be determined based on a motion of reflective structures or surfaces such as bubbles or particles that pass through both the first and second regions, but at different times. As the relative speed of reflective structures such as bubbles or particles increases through a monitored region, there will be a smaller offset in time between the two signals. Conversely, as the speed of the sensor decreases relative to corresponding reflective structures, there will be a larger offset in time between the two signals.
To reduce an amount of data that is processed to generate the mathematical function, each of the first and second received signals can be compared to a respective threshold. The compare results, such as a single bit indicating whether the first or second signal is greater or less than a respective running threshold, can be stored in a buffer to incrementally generate the mathematical function over a specified duration of time. Consequently, minimal circuitry such as processor and storage devices need be employed to calculate vessel speed, reducing the size of electronics and sensor that is used to monitor the corresponding first and second regions.
In one application, the mathematical function correlating echo signals is generated at logarithmically spaced sample times. However, any suitable spacing of sample points can be used to generate a discrete function.
Further, the mathematical function can be generated based on an intensity of reflections in a selected layer at a predetermined depth in the first and second monitored regions. Multiple layers at different depths are optionally monitored to generate a correlation function.
It should be noted that the first and second signals may not correlate exactly with each other. For example, the mathematical function can include non-linearities as a result of statistical variations between the first and second signals. The use of overlapping ranges to identify a time difference between first and second signals can be used to more accurately determine a time difference, especially when a time difference between signals changes quickly over time. Ideally, a vessel speed derived from the discrete mathematical function at any point in time accurately reflects an actual speed of a vessel, especially when it is accelerating or decelerating so that a pilot can navigate accordingly.
In a specific application, the discrete mathematical function is based on an auto-correlation function of the first signal, an auto correlation function of the second signal and a cross-correlation function between the first and second signals. However, any suitable mathematical function for correlating multiple signals can be used to determine a time difference between signals.
Multiple overlapping ranges of the difference function can be used at different times to calculate a time difference between the first and second signals. More specifically, a zero-crossing of the mathematical function can be calculated in a first range of multiple overlapping ranges defined by sample points. Based on new sample data and corresponding incremental changes to the mathematical function, a zero-crossing can drift outside the first range. A second range at least partly overlapping with the first range can be identified in which a new zero-crossing falls. Consequently, the new zero-crossing can be interpolated in the second range. This technique of interpolating a zero-crossing in overlapping ranges over time renders it possible to calculate a more accurate time difference between signals. More specifically, when a time difference between signals is used to determine vessel speed, a corresponding calculated vessel speed can more accurately track the changing time difference and therefore an actual speed of an accelerating or decelerating vessel.
In one application, a time difference between signals is not interpolated in a new overlapping range unless the corresponding new zero-crossing of the mathematical function falls outside a previous range that was used to interpolate the zero-crossing.
As mentioned, one purpose for calculating a time difference between two signals is to measure vessel speed. In this instance, a transmitter such as an ultrasonic transducer can generate pings in monitored regions of water. Echo signals resulting from pings off reflective particles can be generated for each of multiple regions.
Vessel speed can be calculated based on sampling over multiple time intervals. For example, a calculated vessel speed can be displayed to a pilot when the time difference between echo signals is interpolated using a same range for two successive time intervals in which the difference function is generated. In one application, the displayed vessel speed is a weighted average of previously calculated vessel speeds.
As discussed, one aspect of the present invention is to generate a correlation function based on a substantially reduced data set. For example, a single bit compare result data stored in the shift registers can be used to generate a function for determining the time difference between signals. Although only a single bit is stored for a sample compare, each bit can contain enough information about the corresponding reflection signal that an accurate time difference between signals can be determined based on processing data at selected tap points of the shift register following collection of each sample. For example, multiple logarithmically spaced data taps on the shift registers can provide enough information in a 65 bit wide shift register to generate an accurate correlation function.
Another aspect of the present invention is to incrementally generate a correlation function based on tapped data from a shift register such as 65 bits wide. Based on this topology, there is no need to accumulate and simultaneously process an exorbitant amount of data such as successive 16 bit A/D readings to generate a mathematical function relating multiple signals. Rather, the correlation function or equation used in the present invention is generated incrementally while only a reduced set of sample data is stored at any given time. Consequently, a relatively small memory device can provide sufficient storage space for data samples that are used to generate the discrete mathematical function. A relatively simple processing device therefore can be used to process such data.
These and other advantages of the present invention will be described in more detail throughout this specification.